﻿using System;
using System.Collections.Generic;
using System.Windows;
using System.Windows.Data;
using SoftSource.MVVMC;
using SoftSource.Timecard.Web.Data;

namespace SoftSource.Timecard.ViewModelInterfaces
{
    public interface IProjectListViewModelConsume : IDataViewModelConsume
    {
        #region Properties

        PagedCollectionView Projects { get; }

        #endregion Properties

        #region Methods

        Func<int, Action, UIElement> CreateProjectEditor { get; }
        Func<Action, UIElement> CreateNewProjectEditor { get; }
        Func<int, Action, UIElement> CreateCloneProjectEditor { get; }

        #endregion Methods
    }

    public interface IProjectListViewModelService : IDataViewModelService
    {
        #region Properties

        IEnumerable<ProjectSummary> ProjectSummaries { get; set; }

        #endregion Properties

        #region Methods

        Func<int, Action, UIElement> CreateProjectEditor { get; set; }
        Func<Action, UIElement> CreateNewProjectEditor { get; set; }
        Func<int, Action, UIElement> CreateCloneProjectEditor { get; set; }

        #endregion Methods
    }

    public interface IProjectListViewModel : 
        IDataViewModel, 
        IProjectListViewModelConsume, 
        IProjectListViewModelService
    {
    }
}
